Mobile notifications based upon location

ABSTRACT

Disclosed are various embodiments employed to generate device notifications based upon location data associated with a mobile device. To this end, a request to generate a device notification is obtained from a user application. Notification content is extracted from the request and an escalated or de-escalated notification level is applied that is based at least in part upon the location of the mobile device and properties about the location that can be identified.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims the benefit of U.S.patent application Ser. No. 13/596,119, entitled “MOBILE NOTIFICATIONSBASED UPON LOCATION,” and filed Aug. 28, 2012, which is herebyincorporated by reference in its entirety.

BACKGROUND

Current mobile devices provide for an ability to display notificationsthat are related to received email, short message service (SMS)messages, mobile application notifications, and other types of contentthat is pushed to the mobile device and/or pulled by the mobile deviceand subsequently displayed via some type of notification capabilityprovided by the mobile device operating system. Current mobile deviceapplications and/or operating systems may allow for the ability tofilter, categorize and/or prioritize notifications based upon a senderor a message and/or an identity of an application through which anotification originates.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the present disclosure can be better understood withreference to the following drawings. The components in the drawings arenot necessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a drawing of a networked environment according to anembodiment of the present disclosure.

FIGS. 2-4 are drawings of example user interfaces generated in a mobiledevice according to an embodiment of the present disclosure.

FIG. 5 is a flowchart that illustrates one example of a portion of theoperation of the notification library in a mobile device according to anembodiment of the present disclosure.

FIG. 6 is a schematic block diagram that depicts one example of a mobiledevice in the networked environment of FIG. 1 according to an embodimentof the present disclosure.

DETAILED DESCRIPTION

With reference to FIG. 1, shown is a networked environment 100 thatfacilitates the use of a mobile device allowing for altering mobilenotifications based upon a location of the mobile device as well asinput from one or more device sensors and/or data accessible to themobile device. Specifically, the networked environment 100 includes atleast one mobile device 103 in which notifications can be displayed to auser. First, a general description of the physical makeup of thenetworked environment 100 and its components is described, followed by adiscussion of the operation of the same.

To begin, the networked environment 100 includes one or more mobiledevices 103 that are coupled to a network 109. The network 109 maycomprise, for example, the Internet, intranets, extranets, wide areanetworks (WANs), local area networks (LANs), wired networks, wirelessnetworks (such as cellular networks), or other suitable networks, etc.,or any combination of two or more such networks.

Each of the mobile devices 103 may comprise, for example, a smartphone,tablet computing device, a portable computing system such as, forexample, a laptop, or any other device that generally is portable suchthat an individual may carry such device from place to place as can beappreciated. To this end, according to one embodiment, a mobile device103 includes a processor circuit having a processor and a memory as canbe appreciated.

According to one embodiment, the mobile device 103 includes a displaydevice 126 such as, for example, liquid crystal display (LCD) screens,gas plasma-based flat panel displays, or other types of display devices,etc. The display device 126 included within the mobile device 103facilitates the display of one or more user interfaces 129 based uponthe operation of various applications in the mobile device 103 as willbe described. In addition, a mobile device 103 includes various inputand output devices such as, for example, a capacitive touchscreenintegrated into the display device 126, externally visible lights, lightemitting diodes, vibration motors, or other types of visual indicators,an integrated camera, speakers, microphones, and other devices as can beappreciated.

In addition, the mobile device 103 includes various applications and/orsystems such as, for example, a notification library 133, an operatingsystem 136, one or more user applications 139, and other applicationsand/or systems. The notification library 133 is a portion of theoperating system 136 and/or an operating system plug-in, applicationprogramming interface (API), library, or other type of softwarecomponent that can facilitate manipulation of device notifications via auser interface, speakers, vibration motors, and/or externally visibleindicators such as an externally mounted LED. The operating system 136is a device operating system that facilitates communication betweensoftware components and applications and the mobile device 103 hardwarecomponents, such as a processor circuit, input/output bus, inputdevices, output devices, etc.

User applications 139 represent one or more applications that can beexecuted by the mobile device 103 and which can obtain various types ofdata and display notifications in a user interface rendered on thedisplay device or generate other content in the mobile device 103. Auser application 139 can comprise an email application, a calendarapplication, an SMS application, a browser, or any other type of mobileapplication that can obtain push notifications or generate notificationsbased upon data obtained via the network 109 or data stored in themobile device 103. For example, an email or SMS application may generatenotifications in the form of an audible ringtone, activation of avibration motor, a visible notification in a notification bar or otherpart of an operating system user interface, a flashing or blinking LEDor other types of notifications as can be appreciated. In someembodiments, a user application 139 can represent an operating systemresource, service, or any type of application that can request todisplay or activate any type of device notification in the mobile device103.

As another example, a calendar application may generate notificationsassociated with appointments or reminders associated with a calendarthat are rendered in a user interface shown on the display 126 basedupon calendar data stored within the mobile device 103. Additionally,the calendar application may also generate a notification in the form ofa ringtone played via a speaker associated with the mobile device 103 orcause an integrated LED to light or blink periodically in one or moredifferent colors. In these and other scenarios where a user application139 attempts to generate a notification in a mobile device 103, the userapplications 139 can do so via an API provided by the notificationlibrary 133 by passing a notification data item that containsnotification content, meta data (e.g., content type, image capturedevice type data, location etc.).

The mobile device 103, in one embodiment, further includes variousdevices sensors and hardware capabilities. For example, the mobiledevice 103 can include one or more light emitting diodes (LEDs) 141 thatcan be activated as a part of a notification. The mobile device 103 canalso include one or more speakers 143, through which the notificationlibrary 133 can play one or more tones or sounds as a part of anotification. Additionally, the mobile device 103 can also include oneor more vibration motors 145, which can also be activated by thenotification library 133 at various frequencies as a part of anotification.

The mobile device 103 can also include, in some embodiments, a globalnavigation satellite system 147 that is configured to determine alocation of the mobile device 103 by communication with a satellitenavigation system, such as the global positioning system (GPS),Globalnaya Navigatsionnaya Sputnikovaya Sistema (GLONASS), or any othersatellite navigation system or location detection mechanism. The mobiledevice 103 can also be configured with one or more wireless radios 159,or wireless network interfaces. For example, the mobile device 103 caninclude a Bluetooth communication subsystem, a wireless networkingsubsystem such as a wireless local area networking system (e.g., Wi-Fi)facilitating communication with a wireless local area network and/or awireless wide area networking system facilitating communication with awireless wide area network.

Location data associated with the mobile device 103 can be requested bythe notification library 133 from an operating system executed by themobile device 103, which can provide location data that is derived fromdata obtained from the GNSS system 147, the wireless radios 159, or anyother systems as can be appreciated.

Accordingly, the notification library 133 can determine, based upon thelocation of the mobile device, whether a notification rule specifying aparticular notification level is associated with the location of themobile device and potentially other device sensor data. The notificationlibrary 133 can also determine, absent an applicable notification rule,whether the notification level corresponding to a particularnotification should be modified based upon the location of the mobiledevice 103 and/or device sensor data.

The notification level can comprise one of many various levels ofnotification depending upon the location associated with the mobiledevice 103. For example, the notification levels associated with thenotification library 133 can be ranked according to a degree or amountof device notifications associated with the notification level. In thissense, an escalated notification level can comprise any combination ofuser interface elements displayed by the notification library 133 in anoperating system user interface, audible or tactile notification, and/orLED notifications. Conversely, lower priority notifications can beassociated with a de-escalated notification level, which can comprise,for example, a less intrusive form of notification generated by thenotification library 133. For example, a de-escalated notification levelmay be characterized by fewer visual notification elements, lessintrusive audible notifications, etc. In some embodiments, ade-escalated notification level can comprise delaying certain devicenotifications until a later point in time. For example, if the mobiledevice 103 is detected to be in a certain location, the notificationlibrary 133 can delay activation of device notifications until themobile device 103 is a certain distance away from the location. Thenotification levels can also include a default notification level withwhich a location cannot be associated with an escalated or de-escalatednotification level can be associated.

As another example, the notification library 133 can determine whetherthe mobile device 103 is entering and/or approaching a location that isassociated with an escalated or de-escalated notification level andescalate and/or de-escalate previous notifications already processed bythe notification library 133 based upon the new location. For example,if the mobile device 103 is approaching a location that is associatedwith an escalated notification level, the notification library 133 canapply an escalated notification level to previous notification items. Asan additional example, the notification library 133 can apply ade-escalated notification level to previous notification items if thelocation is associated with a de-escalated notification level. As oneexample, the notification library 133 may suppress and/or deactivate orsuppress certain notifications already activated in the mobile device103 consistent with a de-escalated notification level when the mobiledevice 103 approaches a location associated with a de-escalatednotification level.

Other solutions generate varying notification levels depending upon anotification type, a sender, and/or originating application of anotification. In contrast, the notification library 133 can maintain oneor more notification rules that relate a location of the mobile deviceto a notification level. In other words, the notification library 133can analyze the location in which the mobile device is positioned todetermine a corresponding notification level. In one scenario, a userapplication 139 can submit a request to generate a device notificationin the form of a notification user interface element that is a popupelement and/or one that is placed in a notification bar in an operatingsystem or launcher user interface by submitting a notification data itemcontaining the notification content to the notification library 133. Inresponse, the notification library 133 can analyze the location of themobile device 103 as reported by the GNSS system 147, for example, anddetermine whether a notification rule corresponds to the location andspecifies a notification level that varies from the notificationrequested by the user application 139. The notification library 133 canthen generate a notification according to the notification levelcorresponding to the notification rule.

As noted above, the notification level can specify various types ofnotifications that are displayed by the operating system 136 in a userinterface on the display 126, via visible indicators integrated withinthe mobile device 103, and/or audible alerts via a speaker integratedwithin the mobile device 103. For example, a user application 139 thatis an email application may request a notification in the form of aringtone, activation of a vibration motor, activation of a certain LEDcolor and repeat pattern and/or frequency, as well as a notificationdisplayed in a notification bar and/or in a notification popup shown inthe operating system 136 user interface 129.

However, the notification library 133 may determine that, based upon thelocation of the mobile device 103 potentially in combination with otherdata about ambient conditions as well as a corresponding notificationrule, that a different notification level should be employed.Accordingly, if a de-escalated notification level is specified by thenotification rule for the location, the notification library 133 cangenerate a device notification that can vary from the type ofnotification requested by the user application 139. For example, in thecase of an email notification, the notification rule can specify that anaudible tone should not be generated nor should the vibration motor bevibrated, while the visible notifications in the user interface 129 andLED should be generated.

The notification rule can specify a notification level that varies fromthe requested notification in various ways and in various permutations,such as in the form of various volumes or selections of ringtones, arepeat frequency or repeat pattern of a ringtone, vibration motoractivation, and/or LED activation, the intensity of the LED activation,and in other combination and permutations as can be appreciated. Forexample, the notification rule can specify a particular volume of aringtone that varies from a default volume level. As another example,the notification rule can specify a pattern with which the vibrationmotor is activated that varies relative to the default pattern. As yetanother example, the notification rule can specify a frequency withwhich the LED is activated that varies from the default frequency.Additionally, the notification rule can specify varying levels ofdisplay brightness that can be employed in response to certain ambientconditions.

In some embodiments, a notification rule maintained by the notificationlibrary 133 can specify one or more device notifications associated withsome characteristic of the location of the mobile device 103 and/orother device sensor data that vary from the default notifications thatcorrespond to those requested by the user application 139. For example,an email application may ordinarily request from the notificationlibrary a particular combination of default device notifications.Accordingly, a notification rule can specify certain devicenotifications that are employed in addition to the defaultnotifications. For example, an email application may request to generatedevice notifications that include the playing of a ringtone, activationof an LED and vibration motor and/or the display of a user interfaceelement. Accordingly, a notification rule can specify that the volume ofa default ringtone should be elevated, the frequency with which the LEDand/or vibration motor are repeated to be modified, or specify otherchanges to a default device notifications.

In one embodiment, a user of a mobile device 103 may set up variousnotification rules via a user interface provided by the notificationlibrary 133 on the mobile device and/or via a web based user interface.The notification rules can specify a notification level that includes acombination of device notifications that are associated with aparticular location, type of location, or device sensor data. In oneembodiment, a notification rule can specify that when the location ofthe mobile device 103 is within a predetermined radius of a specificlocation, address and/or point of interest that notifications receivedwhile the device is within the predetermined radius should be escalatedor de-escalated. For example, if the mobile device 103 is located withina predetermined radius of an office address of a user, notifications canbe de-escalated with the mobile device 103 is in such a location. Incontrast, if the mobile device 103 is located within a predeterminedradius of, for example, a concert venue, a stadium, an arena, or anyother location that can be associated with high ambient volume levels,notifications can be escalated.

As another example, the notification library 133 can determine alocation type associated with a particular location to determine whethernotification levels should be escalated or de-escalated. For example,the notification library 133 can cross reference a location of themobile device 103 with mapping data to determine the type of locationthat the mobile device 103 is in or near. The notification library 133can escalate or de-escalate notification levels based upon the type oflocation. For example, the notification library 133 can determine thatthe mobile device 103 is located in an office environment, a library,book store, or other environment that is likely to be a quietenvironment and de-escalate incoming notifications. As another example,the notification library 133 can determine that the mobile device 103 isin a retail establishment, venue, or other environment associated withhigh volume levels, and escalate notifications in such a scenario. Toidentify a location type, the notification library 133 can querylocation listings from mapping data that identifies the types and/oridentities of residences, places of business, or other types of venues.

Additionally, upon identifying a particular point of interest associatedwith the location, or a location type (e.g., residence, business,retail, office, movie theater, etc.), the notification library 133 canalter notification levels depending upon the time of day. For example,if the mobile device 103 is located within a movie theater, thenotification library 133 can examine movie times associated with themovie theater and identify that the user associated with the mobiledevice 103 is in the movie theater during a movie showing. Accordingly,a de-escalated notification level can be selected in such a scenario. Asanother example, the notification library 133 can determine from alisting of events whether an event associated with high volume levels(e.g., concert, sporting events, etc.) is occurring in a venue in whicha mobile device 103 is located. In such a scenario, escalatednotification levels can be employed. Such a listing of events can beobtained from a source that is accessible to the mobile device 103 viathe network 109.

Additionally, the notification library 133 can obtain operating hoursassociated with a particular location from a listing associated with thelocation to determine whether the location is likely to comprise a loudor quiet environment during the time in which the mobile device 103 isat the location. If, for example, an incoming notification is receivedduring operating hours of a place of business and the mobile device 103is located within or near the place of business, the notificationlibrary 133 can identify the location type to make a determination as towhether the location is likely to be a quiet environment or a loudenvironment. The notification library 133 can then escalate orde-escalate notifications if the environment is likely to be loud orquiet, respectively. In some embodiments, a user may specify theoperating hours of a place of business or other type of location if theoperating hours obtained from the listing are incorrect or cannot beobtained for any other reason, and the notification library 133 canassociate the operating hours with the location in order to escalate orde-escalate notifications when the mobile device 103 is located in ornear the location.

For example, if the mobile device 103 is located within a library duringthe operating hours of the library, the notification library 133 canemploy de-escalated notification levels. As another example, if themobile device 103 is located within an amusement park during operatinghours, the notification library 133 can employ escalated notificationlevels. As another example, the notification library 133 can determinebased upon a device calendar associated with the mobile device 103indicates that the user is presently busy or engaged in a meeting. Insuch a scenario, the notification library 133 can adopt de-escalatednotification levels until the user is not busy or engaged in a meeting.

As another example, a notification rule established by a user canspecify that when the mobile device 103 is within a certain radius of anaddress associated with another user to which the user is linked, thatan escalated or de-escalated notification level is then applied to anincoming notification. As another example, the notification library 133can determine whether the mobile device 103 is in a location associatedwith another user to which the user is linked by examining a contactdata store on the mobile device 103. If so, then the notificationlibrary 133 can escalate or de-escalate incoming notifications while themobile device 103 is in such a location. As a variation of this example,the notification library 133 can determine whether the mobile device 103is in a location associated with another user to whom the user is linkedin a social networking system and escalate or de-escalate notificationswhile the mobile device 103 is in such a location.

As another example, the notification library 133 can also determinewhether the location of the mobile device 103 is within the proximity ofor a specified radius of another device associated with a user to whomthe user is linked in some way. For example, the notification library133 can determine from a social networking system in which users canprovide their locations, or “check-in” to various locations, whetheranother user to whom a user of the mobile device 133 is linked, is in alocation within a specified radius of the mobile device 103. If so, thenthe notification library 133 can examine the content of a notification,determine whether the notification originates from or is related to theother user, and escalate notifications that are related to the otheruser. In some embodiments, rather that detecting proximity of a deviceassociated with another user to whom the user of the mobile device 103is linked in some way, a device associated with the other user that iswithin a specified distance of the location of the mobile device 103 canbroadcast a signal via a wireless radio (e.g., Bluetooth), which can bereceived by the mobile device 103.

Additionally, the notification library 133 can also determine arelationship between the user and another user associated with thelocation to which the user is linked. Notifications can then beescalated or de-escalated based upon the location and the relationship.For example, the notification library 133 can escalate or de-escalatenotifications when the mobile device 103 is in a location associatedwith another user to whom the user is related. As another example, thenotification library 133 can modify notification levels when the mobiledevice 103 is in a location associated with another user who is a friendor co-worker of the user. The notification library 133 can determine arelationship between another user and the user associated with themobile device 103 by examining a published relationship in a socialnetworking system and/or a contact store accessible to the mobile device103. A contact store can correspond to an address book that is stored onor accessible to the mobile device 103.

As another example, the notification library 133 can also determine animportance of a relationship to a user related to content of aparticular notification relative another user to which the mobile device103 is near. In other words, the notification library 133 can determinewhether the mobile device 103 is near another user and subsequentlydetermine whether a notification related to yet another user to whichthe user of the mobile device 103 is linked is received by thenotification library 133. Accordingly, a user can define the relativeimportance of users with respect to notifications and escalate anotification level when a notification is received that is related to auser that is associated with a higher importance level relative to auser to which the mobile device 103 is near. Conversely, a de-escalatednotification level can be applied when a notification is received thatis related to a user that is associated with a lower importance levelrelative to a user to which the mobile device 103 is near.

The notification library 133 can also determine a velocity of the mobiledevice 103 from data obtained from the GNSS system 147. Accordingly, thenotification library 133 can alter notification levels based upon thevelocity of the mobile device 103 at any given point in time. If thevelocity of the mobile device 103 exceeds a predefined threshold, thenotification library 133 can employ escalated notification levels, as anelevated velocity may be consistent with elevated ambient noise levels.Similarly, if the velocity is beneath a threshold or indicates that themobile device 103 is stationary, the notification library 133 can employde-escalated notification levels, as such a velocity may be consistentwith decreased ambient noise levels. Additionally, a user may specifyvia a user configured notification rule one or more velocity thresholdsand various notification levels with each of the velocity thresholds.Additionally, the notification library 133 can also select escalatednotification levels when location data obtained from the GNSS system 147indicates that the mobile device 103 is located within or near aroadway, airport, or any other similar type of environment that can beassociated with elevated noise levels.

The notification library 133 can also generate notification rules bylearning what types of notifications are of importance to the user ofthe mobile device 103. To accomplish this, the notification library 133can identify a user input in response to a notification that isgenerated by the notification library 133 and determine whether the userinput represents a user interaction or a lack of a user interaction withthe notification. If a user interaction with the notification isdetected, such as when a user opens a notification or a user applicationrelated to the notification, the notification library 133 can generate anotification rule that assigns an escalated notification level to thecurrent location of the mobile device 103. If a lack of a userinteraction with the notification is detected, such as when a userdismisses or cancels a notification generated by the notificationlibrary 133, then the notification library 133 can generate anotification rule that assigns a de-escalated notification level to thecurrent location of the mobile device 103.

As another example, the notification library 133 can generatenotification rules by determining based upon actions within a userapplication 139 that the user may take. For example, user interactionwith the notification is detected, such as when a user opens anotification related to an email message, SMS message, or any other typeof message, and the user subsequently deletes the associated message,the notification library can assign a de-escalated notification level tothe location of the mobile device 103. Additionally, in this scenario,the notification library 133 can also detect whether the user reads,replies to, or otherwise interacts with the message and assign anescalated notification level to the location of the mobile device 103.

Referring next to FIG. 2, shown is an example of a mobile device 103displaying a user interface 129 in which various types of notificationscan be generated by the notification library 133. In the example of FIG.2, also shown is an example of an externally visible LED 203 that can beactivated by the notification library 133 in response to a request togenerate a notification from a user application 139. In the depictedexample, a user application 139, such as an email application hasrequested to generate a notification in the mobile device 103.Accordingly, in the scenario shown in FIG. 2, the user application 139has requested that the notification include periodic activation of theLED 203 as well as display of a notification badge 205 in a notificationarea of the user interface 129 and potentially playing of a ringtoneassociated with the email application. Therefore, in this scenario, thenotification library 133 can generate the requested notifications. Forexample, in this scenario, there may be no predefined notification rulescorresponding to the location of the device. Therefore, if there are nopredefined notification rules corresponding to the location, thenotification library 133 can generate notification according to adefault behavior, which can include generating the notificationsrequested by the user application 139.

Referring next to FIG. 3, shown is an alternative example of a mobiledevice 103 and user interface 129 in which the notification library 133has generated a device notification corresponding to a notificationrule. In the depicted example, a notification rule specifying ade-escalated notification level is identified that applies to thecurrent location of the mobile device 103. Accordingly, the notificationrule can specify that the notification library 133 generates devicenotifications that vary from those requested by the user application139. In this example, the notification library 133 can display thenotification badge 205 but can also suppress activation of the LED 203as well as potentially suppress playing of a ringtone.

Referring next to FIG. 4, shown is an alternative example of a mobiledevice 103 and user interface 129 in which the notification library 133has generated a device notification corresponding to a notificationrule. In the depicted example, a notification rule specifying anescalated notification level is identified that applies to the locationof the mobile device 103. Accordingly, the notification rule can specifythat the notification library 133 generates device notificationsassociated with an escalated notification level. In one embodiment, theescalated notification level includes additional or alternative devicenotifications that can signal importance of the notification to the userof the mobile device 103. The escalated notification level can includedevice notifications that vary from those requested by the userapplication 139.

In this example, the notification library 133 can display thenotification badge 205 and activate the LED 203, which may be the devicenotifications requested by the user application 139. The notificationlibrary 133, in order to effectuate an escalated notification level, canalso display a popup notification 307 in the user interface 129 thatincludes user interface elements with which the user may interact. Inthis example, the popup notification 307 allows the user to dismiss thenotification or view additional information related to the notification(e.g., the email message). The notification library 133 can alsoperiodically activate a vibration motor associated with the mobiledevice until the user interacts with popup notification 307 even thoughsuch a notification may not have been requested by the user application139.

Additionally, the notification library 133 can also refine and/or definenotification rules that are related to the location of the mobile device103 based upon user interaction with the popup notification 307. In thedepicted example, the notification library 133 can detect user inputthat corresponds to user interaction with the notification, such asactivation of the “View” button. The notification library 133 can alsodetect user input that corresponds to a lack of user interaction withthe notification, such as activation of the “Cancel” button. In the caseof detection of user interaction with the notification, the notificationlibrary 133 can confirm a notification rule associated with the locationas well as other device sensor data associated with ambient conditions.The notification library 133 can also adjust the notification ruleapplying to the location to an even more escalated notification level.In the case of detection of a lack of user interaction with thenotification, the notification library 133 can adjust the notificationrule associated with the location so that a de-escalated notificationlevel is applied.

Referring next to FIG. 5, shown is a flowchart that provides one exampleof the operation of at least a portion of the notification library 133according to an embodiment of the present disclosure. Alternatively, theflowchart of FIG. 5 may be viewed as depicting steps of an example of amethod implemented in a mobile device 103 (FIG. 1).

Beginning with box 501, the notification library 133 obtains a requestfrom a user application 139 executed by the mobile device 103 togenerate one or more device notifications. The request can include anotification data item that includes notification content that isrelated to the notification or that the user application 139 isattempting to place in a visual notification user interface element. Thenotification data item also includes the requested types ofnotification, such as whether to place a notification badge in a userinterface, a popup element, LED activation, vibration motor activation,and/or playing of audible alerts or ringtones. As noted above, a userapplication 139 can include any application executed by the mobiledevice 103 that initiates notifications in the mobile device 103 thatare related to communications (e.g., email, SMS, mobile application pushnotifications, etc.) obtain on behalf of a user as well as applicationsthat generate notifications related to any other type of content (e.g.,calendar applications, games, electronic commerce applications, etc.).

The notification library 133 can then determine a location of the mobiledevice 103 in box 503. As noted above, the notification library 133 canrequest the location of the mobile device 103 from an operating systemexecuted by the mobile device 103, which can obtain location data of themobile device 103 from the GNSS system 147 and/or the wireless radios159. Additionally, in box 504, the notification library 133 candetermine whether a location type and/or point of interest can beassociated with the location. In other words, the notification library133 can identify a location listing associated with the location of themobile device 103. In some embodiments, the notification library 133 candetermine a location type associated with the location and/or a point ofinterest associated with the location.

The notification library 133 can also determine whether an event isoccurring at the location that can be associated with elevated volumelevels, such as a concert or sporting event. The notification library133 can also determine whether an event is occurring at the locationthat can be associated with lowered volume levels. The notificationlibrary 133 can also determine whether the location is associated withanother user to which the user of the mobile device 103 is linked. Forexample, the notification library 133 can examine an address book on themobile device 103 to determine whether the location is associated with auser in the address book. As another example, the notification library133 can determine whether the location is associated with another userin a social networking system to which the user is linked. Additionally,the notification library 133 can also attempt to determine a publishedrelationship between the other user and the user of the mobile device103.

In box 505, the notification library determines whether a notificationrule is defined that applies to the location and/or propertiesassociated with the location. As noted above, in one embodiment, thenotification library 133 can determine, based upon a location typewhether the location is associated with elevated volume levels. In sucha scenario, the notification library can employ an escalatednotification level. Alternatively, the notification library 133 may alsodetermine, based upon the location type, whether the location isassociated with lowered volume levels relative to a baseline volumelevel. In such a scenario, the notification library can employde-escalated notification levels.

In box 507, the notification library 133 can apply a defaultnotification level if a notification rule is not defined that applies tothe location and/or location properties. In one embodiment, the defaultnotification level can include generating the notifications requested bythe user application 139, taking into account whether the mobile device103 is in a quiet mode, silent mode, loud mode, or other type ofoperating system setting that affects the type and/or degree of devicenotifications desired by the user. In box 509, if a notification rule isidentified that corresponds to the location and/or location properties,the notification library can then identify a notification level thatcorresponds to the notification rule. The notification level specifiedby the notification rule can define various types of devicenotifications that should be applied. Finally, in box 511, thenotification library 133 can cause the device notification specified bythe notification level applied to be generated in the mobile device 103.

Referring next to FIG. 6, shown is a schematic block diagram of oneexample of a mobile device 103 according to an embodiment of the presentdisclosure. The mobile device 103 includes a processor circuit, forexample, having a processor 603 and a memory 606, both of which arecoupled to a local interface 609. To this end, the mobile device 103 maycomprise, for example, a portable device such as laptop, personaldigital assistant, cellular telephone, or other device. The localinterface 609 may comprise, for example, a data bus with an accompanyingaddress/control bus or other bus structure as can be appreciated. Themobile device 103 includes the display 126 coupled to the localinterface 609 to allow the processor 603 to apply visual data to thedisplay 126. In some embodiments, the mobile device 103 can includeother elements that are coupled to the local interface 609, such as alocation system configured to obtain location or position dataassociated with the mobile device 103, and other systems as can beappreciated. In addition, the mobile device 103 includes variousinput/output devices 613 such as a capacitive touchscreen, toggles, pushbuttons, microphones, speakers 143, vibration motors 145, LEDs 141, GNSSsystem 147, wireless radios 159, other types of wired and/or wirelessnetwork interfaces, and other devices that are coupled to the localinterface 609.

Stored in the memory 606 are several components that are executable bythe processor 603. In particular, stored in the memory 606 are anoperating system 616, the notification library 133, one or more userapplications 139, and other systems and applications. Also, various datamay be stored, for example, in the memory 606, or some other memoryaccessible to the mobile device 103. It is understood that there may beother applications that are stored in the memory 606 and are executableby the processor 603 as can be appreciated. Where any componentdiscussed herein is implemented in the form of software, any one of anumber of programming languages such as, for example, C, C++, Java, JavaScript, Perl, Python, Flash, or other programming languages.

A number of software components are stored in the memory 606 and areexecutable by the processor 603. In this respect, the term “executable”means a program file that is in a form that can ultimately be run by theprocessor 603. Examples of executable programs may be, for example, acompiled program that can be translated into machine code in a formatthat can be loaded into a random access portion of the memory 606 andrun by a respective processor 603, source code that may be expressed inproper format such as object code that is capable of being loaded into arandom access portion of the memory 606 and executed by a processor 603,or source code that may be interpreted by another executable program togenerate instructions in a random access portion of the memory 606 to beexecuted by a processor 603, etc. An executable program may be stored inany portion or component of the memory 606 including, for example,random access memory (RAM), read-only memory (ROM), hard drive,solid-state drive, USB flash drive, memory card, optical disc such ascompact disc (CD) or digital versatile disc (DVD), floppy disk, magnetictape, or other memory components.

The memory 606 is defined herein as both volatile and nonvolatile memoryand data storage components. Volatile components are those that do notretain data values upon loss of power. Nonvolatile components are thosethat retain data upon a loss of power. Thus, the memory 606 maycomprise, for example, random access memory (RAM), read-only memory(ROM), hard disk drives, solid-state drives, USB flash drives, memorycards accessed via a memory card reader, floppy disks accessed via anassociated floppy disk drive, optical discs accessed via an optical discdrive, magnetic tapes accessed via an appropriate tape drive, and/orother memory components, or a combination of any two or more of thesememory components. In addition, the RAM may comprise, for example,static random access memory (SRAM), dynamic random access memory (DRAM),or magnetic random access memory (MRAM) and other such devices. The ROMmay comprise, for example, a programmable read-only memory (PROM), anerasable programmable read-only memory (EPROM), an electrically erasableprogrammable read-only memory (EEPROM), or other like memory device.

In addition, the processor 603 may represent multiple processors and thememory 606 may represent multiple memories that operate in parallel. Insuch a case, the local interface 609 may be an appropriate network thatfacilitates communication between any two of the multiple processors,between any processor and any one of the memories, or between any two ofthe memories etc. The local interface 609 may comprise additionalsystems designed to coordinate this communication, including, forexample, performing load balancing. The processor 603 may be ofelectrical or of some other available construction.

Although various systems and applications such as the notificationlibrary 133 and/or other systems and applications mentioned above may bedepicted as being embodied in software or code executed by generalpurpose hardware such as processor-based systems as discussed above, asan alternative the same may also be embodied in dedicated hardware or acombination of software/general purpose hardware and dedicated hardware.If embodied in dedicated hardware, such systems and applications can beimplemented as a circuit or state machine that employs any one of or acombination of a number of technologies. These technologies may include,but are not limited to, discrete logic circuits having logic gates forimplementing various logic functions upon an application of one or moredata signals, application specific integrated circuits havingappropriate logic gates, or other components, etc.

The flowchart of FIG. 5 shows the architecture, functionality, andoperation of an implementation of the notification library 133. Ifembodied in software, each block may represent a module, segment, orportion of code that comprises program instructions to implement thespecified logical function(s). The program instructions may be embodiedin the form of source code that comprises human-readable statementswritten in a programming language or machine code that comprisesnumerical instructions recognizable by a suitable execution system suchas a processor in a computer system or other system. The machine codemay be converted from the source code, etc. If embodied in hardware,each block may represent a circuit or a number of interconnectedcircuits to implement the specified logical function(s).

Although the flowchart of FIG. 5 shows a specific order of execution, itis understood that the order of execution may differ from that which isdepicted. For example, the order of execution of two or more blocks maybe scrambled relative to the order shown. Also, two or more blocks shownin succession in FIG. 5 may be executed concurrently or with partialconcurrence. In addition, any number of counters, state variables,warning semaphores, or messages might be added to the logical flowdescribed herein, for purposes of enhanced utility, accounting,performance measurement, or providing troubleshooting aids, etc. It isunderstood that all such variations are within the scope of the presentdisclosure.

Also, where various systems and applications described herein such asthe notification library 133 and/or other systems and applicationscomprise software or code, each can be embodied in any computer-readablemedium for use by or in connection with an instruction execution systemsuch as, for example, a processor in a computer system or other system.In this sense, such systems or applications may comprise, for example,statements including instructions and declarations that can be fetchedfrom the computer-readable medium and executed by the instructionexecution system. In the context of the present disclosure, a“computer-readable medium” can be any medium that can contain, store, ormaintain the above-described systems and applications for use by or inconnection with the instruction execution system. The computer readablemedium can comprise any one of many physical media such as, for example,electronic, magnetic, optical, or semiconductor media. More specificexamples of a suitable computer-readable medium would include, but arenot limited to, magnetic tapes, magnetic floppy diskettes, magnetic harddrives, memory cards, solid-state drives, Universal Serial Bus (USB)flash drives, or optical discs. Also, the computer-readable medium maybe a random access memory (RAM) including, for example, static randomaccess memory (SRAM) and dynamic random access memory (DRAM), ormagnetic random access memory (MRAM). In addition, the computer-readablemedium may be a read-only memory (ROM), a programmable read-only memory(PROM), an erasable programmable read-only memory (EPROM), anelectrically erasable programmable read-only memory (EEPROM), or othertype of memory device.

It should be emphasized that the above-described embodiments of thepresent disclosure are merely possible examples of implementations setforth for a clear understanding of the principles of the disclosure.Many variations and modifications may be made to the above-describedembodiment(s) without departing substantially from the spirit andprinciples of the disclosure. All such modifications and variations areintended to be included herein within the scope of this disclosure andprotected by the following claims.

1. (canceled)
 2. A computer-implemented method, comprising: obtaining,by a mobile device, a notification data item associated with at leastone application executed by the mobile device; determining, by themobile device, a location associated with the mobile device;determining, by the mobile device, whether the location is associatedwith one of an escalated notification level or a de-escalatednotification level; extracting, by the mobile device, notificationcontent from the notification data item; and generating, by the mobiledevice, a device notification corresponding to the at least one of theescalated notification level or the de-escalated notification level. 3.The computer-implemented method of claim 2, wherein generating thedevice notification further comprises generating at least one of: anotification user interface element rendered on a display deviceassociated with the mobile device, an audible notification via a speakerassociated with the mobile device, activation of a vibration motorassociated with the mobile device, modifying a brightness level of thedisplay device, or a visual notification via at least one externallyvisible light emitting diode (LED) associated with the mobile device. 4.The computer-implemented method of claim 2, wherein generating thedevice notification according to the de-escalated notification levelfurther comprises delaying the device notification until an updatedlocation of the mobile device is a specified distance away from acurrent location corresponding to the location.
 5. Thecomputer-implemented method of claim 2, wherein: the escalatednotification level comprises an escalated volume level relative to abaseline volume level; and the de-escalated notification level comprisesa lower volume level relative to the baseline volume level
 6. Thecomputer-implemented method of claim 2, further comprising selecting, bythe mobile device, the de-escalated notification level in response to adetermination that a calendar accessible to the mobile device indicatesan appointment at a current time.
 7. The computer-implemented method ofclaim 2, wherein determining whether the location is associated with theone of the escalated notification level or the de-escalated notificationlevel further comprises: identifying, by the mobile device, a locationlisting associated with the location; and selecting, by the mobiledevice, the one of the escalated notification level or the de-escalatednotification level based upon a location type associated with thelocation listing.
 8. The computer-implemented method of claim 7, furthercomprising: identifying, by the mobile device, a current event listingassociated with the location listing; determining, by the mobile device,whether an event is currently occurring at the location; and selecting,by the mobile device, the one of the escalated notification level or thede-escalated notification level based upon whether the event iscurrently occurring at the location.
 9. A non-transitorycomputer-readable medium embodying a program executable in a mobiledevice, the program, when executed, causing the mobile device to atleast: obtain a notification data item associated with at least oneapplication executed by the mobile device; determine a locationassociated with the mobile device; extract notification content from thenotification data item; identify at least one notification ruleassociated with the location; and generate a device notification in themobile device corresponding to a notification level specified by the atleast one notification rule.
 10. The non-transitory computer-readablemedium of claim 9, wherein the program causes the mobile device toidentify at least one notification rule associated with the location isidentified by: identifying, from metadata associated with the location,operating hours associated with the location listing; and determiningwhether a notification rule is associated with whether the location isopen or closed.
 11. The non-transitory computer-readable medium of claim9, wherein the program causes the mobile device to identify at least onenotification rule associated with the location by: identifying alocation listing associated with the location; identifying a locationtype associated with the location listing; and determining whether thelocation type is associated with a notification rule.
 12. Thenon-transitory computer-readable medium of claim 9, wherein the programcauses the mobile device to identify at least one notification ruleassociated with the location by: determining whether the location isassociated with a first user linked to a second user associated with themobile device; and identifying, by the mobile device, a notificationrule associated with the first user.
 13. The non-transitorycomputer-readable medium of claim 12, wherein the program causes themobile device to determine whether the location is associated with thefirst user linked to the second user associated with the mobile deviceby determining whether the location is within a predetermined radius ofan address associated with the first user in an address book accessibleto the mobile device.
 14. The non-transitory computer-readable medium ofclaim 12, wherein the notification rule specifies the notification levelbased at least in part upon a relationship between the first user andthe second user.
 15. A system, comprising: an electronic data storeconfigured to store at least specific computer-executable instructions;and a mobile device comprising a hardware processor and in communicationwith the electronic data store, the mobile device configured to executethe specific computer-executable instructions to at least: obtain anotification request from an application executed in the mobile deviceto generate a device notification in the mobile device; identifylocation data associated with the mobile device; identify a notificationlevel based at least in part upon the location data; identify thenotification level based at least in part on the location data; andgenerate the device notification according to the notification level.16. The system of claim 15, wherein the notification level is identifiedbased at least in part upon the location data by determining a velocityof the mobile device associated with the location data and selecting thenotification level based at least in part upon the velocity of themobile device.
 17. The system of claim 16, wherein a particularspecified notification level is selected when the velocity meets apredefined threshold.
 18. The system of claim 15, wherein thenotification level is identified by: identifying a location typeassociated with the location data; and identifying the notificationlevel based at least in part on the location type.
 19. The system ofclaim 18, wherein the notification level is identified based at least inpart upon the location type by: selecting an escalated notificationlevel when the location type is associated with an escalated volumelevel relative to a baseline volume level; and selecting a de-escalatednotification level when the location type is associated with a loweredvolume level relative to the baseline volume level.
 20. The system ofclaim 15, wherein the device notification is generated according to thenotification level by initiating a combination of at least one of:display of a notification user interface element on a display associatedwith the mobile device, initiating playing of a ringtone, activating alight emitting diode (LED) associated with the mobile device, modifyinga brightness level of the display associated with the mobile device, oractivating a vibration motor associated with the mobile device.
 21. Thesystem of claim 20, wherein the notification level specifies at leastone of a repeat frequency, a repeat pattern, or an intensity associatedwith the device notification.